#ifndef ALFS_STDX_MEMORY_HPP
#define ALFS_STDX_MEMORY_HPP
#include    <alfs/config.hpp>

// File [alfs/stdx/memory.hpp].
//
// (c) copyright Alf P. Steinbach 2008.
// Use, modification and distribution are subject to the "New BSD License"
// as listed at <url: http://www.opensource.org/licenses/bsd-license.php>.
//
// Serves as replacement for or addition to standard <memory> header.
// Places TR1 stuff in namespace "std" for pre-C++0x compilers.
// TR1 is the standard library additions planned for C++0x.

#include    "default_delete.hpp"            // std::default_delete<>
#include    <memory>

#if !ALFS_IS_CPP0X_OR_LATER
//#   include     "unique_ptr.hpp"          // unique_ptr<> emulation.
#   include    <boost/tr1/memory.hpp>       // shared_ptr<>-stuff, see below.
    namespace std{

        using ::std::tr1::bad_weak_ptr;
        using ::std::tr1::shared_ptr;
        //#if !BOOST_WORKAROUND(__BORLANDC__, < 0x0582)
        //   using ::std::tr1::swap;
        //#endif
        using ::std::tr1::static_pointer_cast;
        using ::std::tr1::dynamic_pointer_cast;
        using ::std::tr1::const_pointer_cast;
        using ::std::tr1::get_deleter;
        using ::std::tr1::weak_ptr;
        using ::std::tr1::enable_shared_from_this;
    }  // std
#endif

#endif
